agents.bayesianopponentmodel
Class BayesianOpponentModelScalable

java.lang.Object
  extended by agents.bayesianopponentmodel.OpponentModel
      extended by agents.bayesianopponentmodel.BayesianOpponentModelScalable

public class BayesianOpponentModelScalable
extends OpponentModel

Implementation of the scalable Bayesian Model. Opponent Modelling in Automated Multi-Issue Negotiation Using Bayesian Learning by K. Hindriks, D. Tykhonov KNOWN BUGS: 1. Opponent model does not take the opponent's strategy into account, in contrast to the original paper which depicts an assumption about the opponent'strategy which adapts over time. 2. The opponent model becomes invalid after a while as NaN occurs in some hypotheses, corrupting the overall estimation.


Field Summary
 
Fields inherited from class agents.bayesianopponentmodel.OpponentModel
fBiddingHistory, fDomain
 
Constructor Summary
BayesianOpponentModelScalable(UtilitySpace pUtilitySpace)
           
 
Method Summary
 double getExpectedEvaluationValue(Bid pBid, int pIssueNumber)
           
 double getExpectedUtility(Bid pBid)
          Plan: cache the results for pBid in a Hash table.
 double getExpectedWeight(int pIssueNumber)
           
 double getNormalizedWeight(Issue i, int startingNumber)
           
 boolean haveSeenBefore(Bid pBid)
           
 void updateBeliefs(Bid pBid)
           
 void updateEvaluationFns()
           
 void updateWeights()
           
 
Methods inherited from class agents.bayesianopponentmodel.OpponentModel
findMinMaxUtility, getDomain, getNormalizedUtility, isCrashed
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

BayesianOpponentModelScalable

public BayesianOpponentModelScalable(UtilitySpace pUtilitySpace)
Method Detail

getExpectedEvaluationValue

public double getExpectedEvaluationValue(Bid pBid,
                                         int pIssueNumber)
                                  throws java.lang.Exception
Throws:
java.lang.Exception

getExpectedWeight

public double getExpectedWeight(int pIssueNumber)
Overrides:
getExpectedWeight in class OpponentModel

updateWeights

public void updateWeights()
                   throws java.lang.Exception
Throws:
java.lang.Exception

updateEvaluationFns

public void updateEvaluationFns()
                         throws java.lang.Exception
Throws:
java.lang.Exception

haveSeenBefore

public boolean haveSeenBefore(Bid pBid)
Overrides:
haveSeenBefore in class OpponentModel

updateBeliefs

public void updateBeliefs(Bid pBid)
                   throws java.lang.Exception
Overrides:
updateBeliefs in class OpponentModel
Throws:
java.lang.Exception

getExpectedUtility

public double getExpectedUtility(Bid pBid)
                          throws java.lang.Exception
Plan: cache the results for pBid in a Hash table. empty the hash table whenever updateWeights or updateEvaluationFns is called.

Overrides:
getExpectedUtility in class OpponentModel
Parameters:
pBid -
Returns:
weeighted utility where weights represent likelihood of each hypothesis
Throws:
java.lang.Exception

getNormalizedWeight

public double getNormalizedWeight(Issue i,
                                  int startingNumber)